package com.coder.rental.service.impl;

import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.coder.rental.entity.RentalType;
import com.coder.rental.mapper.RentalTypeMapper;
import com.coder.rental.service.IRentalTypeService;
import org.springframework.stereotype.Service;

import java.util.Arrays;
import java.util.List;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author tuboyuan
 * @since 2025-09-04
 */
@Service
public class RentalTypeServiceImpl extends ServiceImpl<RentalTypeMapper, RentalType> implements IRentalTypeService {

    /**
     * 分页查询租赁类型信息
     * @param page 分页对象，包含分页参数
     * @param rentalType 租赁类型查询条件对象
     * @return 返回分页查询结果，包含符合条件的租赁类型列表
     */
    @Override
    public Page<RentalType> searchByPage(Page<RentalType> page, RentalType rentalType) {
        QueryWrapper<RentalType> queryWrapper = new QueryWrapper();
        // 根据类型名称进行模糊查询
        queryWrapper.like(StrUtil.isNotEmpty(rentalType.getTypeName()),"type_name",rentalType.getTypeName());
        // 根据折扣范围进行查询
        queryWrapper.le(ObjectUtil.isNotEmpty(rentalType.getHighDiscount()),"type_discount",
                rentalType.getHighDiscount());
        queryWrapper.ge(ObjectUtil.isNotEmpty(rentalType.getLowDiscount()),"type_discount",
                rentalType.getLowDiscount());
        return baseMapper.selectPage(page,queryWrapper);
    }

    /**
     * 批量删除租赁类型
     * @param ids 要删除的租赁类型ID字符串，多个ID用逗号分隔
     * @return 删除成功返回true，删除失败或无数据删除返回false
     */
    @Override
    public boolean delete(String ids) {
        // 将ID字符串转换为整数列表
        List<Integer> list = Arrays.stream(ids.split(","))
                .map(Integer::parseInt).toList();
        // 执行批量删除操作
        if(!list.isEmpty()){
            return baseMapper.deleteBatchIds(list)>0;
        }
        return false;
    }

}
